/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;
import model.Usuario;
import model.Amigo;
import java.util.List;
import model.Viaje;
import service.UsuarioService;
import service.ViajeService;
import service.amigoService;
import org.apache.log4j.*;
import org.apache.log4j.xml.DOMConfigurator;

/**
 *
 * @author Geral Zerpa
 */
public class PerfilAmigos extends AbstractCommandController {

    private UsuarioService usuarioService;
    private amigoService amigoService;
    private ViajeService viajeService;
    private static Logger loggers = null;

    public void setViajeService(ViajeService viajeService) {
        this.viajeService = viajeService;
    }

    public void setAmigoService(amigoService amigoService) {
        this.amigoService = amigoService;
    }

    public void setUsuarioService(UsuarioService usuarioService) {
        this.usuarioService = usuarioService;
    }

    public PerfilAmigos() {
        this.setCommandClass(Usuario.class);
        this.setCommandClass(Amigo.class);
    }

    @Override
    protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object form, BindException errors) throws Exception {
        Map model = new HashMap();

        Usuario user2;
        Usuario user1;
        Long Valor;

        Valor = Long.parseLong(request.getParameter("ux"));
        user1 = (Usuario) usuarioService.getUsuario(Long.parseLong(request.getParameter("ux")));
        user2 = (Usuario) usuarioService.getUsuario(Long.parseLong(request.getParameter("au")));

        Amigo ami;
        List user;

        user = amigoService.getMisAmigos(Long.parseLong(request.getParameter("ux")));
        for (int i = 0; i < user.size(); i++) {
            ami = (Amigo) user.get(i);
            Long numAmigo;
            Long numAmigo1;
            numAmigo = ami.getUsuarioByFkAmigo1().getIdUsuario();
            if (numAmigo == Long.parseLong(request.getParameter("au"))) {
                Valor = Long.parseLong(request.getParameter("au"));
            }
            numAmigo1 = ami.getUsuarioByFkAmigo2().getIdUsuario();
            if (numAmigo1 == Long.parseLong(request.getParameter("au"))) {
                Valor = Long.parseLong(request.getParameter("au"));
            }
        }

        if (Valor == Long.parseLong(request.getParameter("au"))) {

            List Viajes;
            Viajes = viajeService.listdeMisViajes(user2.getIdUsuario());
            request.getSession().setAttribute("usuarioList", null);
            model.put("viaje", Viajes);
            model.put("title", "MODIFICAR DATOS");
            model.put("usuario", user1);
            model.put("usuario1", user2);
            return new ModelAndView("perfilAmigos", model);

        } else {
            request.getSession().setAttribute("usuarioList", null);
            model.put("title", "MODIFICAR DATOS");
            model.put("usuario", user1);
            return new ModelAndView("perfilUsuario", model);
        }


    }
}
